package com.cencat.route.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 商户统计信息VO
 * 
 * @author cencat
 * @version 1.0
 * @since 2024-01-01
 */
@Data
@Schema(description = "商户统计信息")
public class MerchantStatisticsVO {

    @Schema(description = "总商户数量")
    private Long totalMerchantCount;

    @Schema(description = "活跃商户数量")
    private Long activeMerchantCount;

    @Schema(description = "已认证商户数量")
    private Long verifiedMerchantCount;

    @Schema(description = "未认证商户数量")
    private Long unverifiedMerchantCount;

    @Schema(description = "认证中商户数量")
    private Long verifyingMerchantCount;

    @Schema(description = "认证失败商户数量")
    private Long verificationFailedMerchantCount;

    @Schema(description = "暂停服务商户数量")
    private Long suspendedMerchantCount;

    @Schema(description = "今日新增商户数量")
    private Long todayNewMerchantCount;

    @Schema(description = "本周新增商户数量")
    private Long weekNewMerchantCount;

    @Schema(description = "本月新增商户数量")
    private Long monthNewMerchantCount;

    @Schema(description = "平均信用分数")
    private BigDecimal averageCreditScore;

    @Schema(description = "最高信用分数")
    private BigDecimal maxCreditScore;

    @Schema(description = "最低信用分数")
    private BigDecimal minCreditScore;

    @Schema(description = "A级信用商户数量")
    private Long creditLevelACount;

    @Schema(description = "B级信用商户数量")
    private Long creditLevelBCount;

    @Schema(description = "C级信用商户数量")
    private Long creditLevelCCount;

    @Schema(description = "D级信用商户数量")
    private Long creditLevelDCount;

    @Schema(description = "企业类型商户数量")
    private Long enterpriseMerchantCount;

    @Schema(description = "个体工商户数量")
    private Long individualMerchantCount;

    @Schema(description = "其他类型商户数量")
    private Long otherTypeMerchantCount;

    @Schema(description = "总交易金额")
    private BigDecimal totalTransactionAmount;

    @Schema(description = "今日交易金额")
    private BigDecimal todayTransactionAmount;

    @Schema(description = "本周交易金额")
    private BigDecimal weekTransactionAmount;

    @Schema(description = "本月交易金额")
    private BigDecimal monthTransactionAmount;

    @Schema(description = "平均单笔交易金额")
    private BigDecimal averageTransactionAmount;

    @Schema(description = "最高单笔交易金额")
    private BigDecimal maxTransactionAmount;

    @Schema(description = "最低单笔交易金额")
    private BigDecimal minTransactionAmount;

    @Schema(description = "总交易笔数")
    private Long totalTransactionCount;

    @Schema(description = "今日交易笔数")
    private Long todayTransactionCount;

    @Schema(description = "本周交易笔数")
    private Long weekTransactionCount;

    @Schema(description = "本月交易笔数")
    private Long monthTransactionCount;

    @Schema(description = "平均商户评分")
    private BigDecimal averageMerchantRating;

    @Schema(description = "统计时间")
    private LocalDateTime statisticsTime;

}